package com.hspedu.bignum_;

import java.math.BigDecimal;

public class BigDecimal_ {
    public static void main(String[] args) {
        double d = 199.1212121213d;
        System.out.println(d);
        System.out.println("===========");

        //编程中，需要处理精度很高的数，double 不够用
        BigDecimal bigDecimal = new BigDecimal("199.1221121212221212112121211345455677889");
        BigDecimal bigDecimal1 = new BigDecimal("1.2133243434545658776554333321");
        System.out.println(bigDecimal);
        System.out.println(bigDecimal1);

        //在对 bigDecimal1 进行加减乘除的时候，需要使用对应的方法，不能直接进行 + - * /
        BigDecimal add = bigDecimal.add(bigDecimal1);
        System.out.println(add);
        BigDecimal subtract = bigDecimal.subtract(bigDecimal1);
        System.out.println(subtract);
        BigDecimal multiply = bigDecimal.multiply(bigDecimal1);
        System.out.println(multiply);
        //BigDecimal divide = bigDecimal.divide(bigDecimal1);//可能抛出异常 ArithmeticException
        //在调用 divide 方法时，指定精度即可
        //如果有无限循环小数，就会保留 分子 的精度
        BigDecimal divide = bigDecimal.divide(bigDecimal1, BigDecimal.ROUND_CEILING);
        System.out.println(divide);
    }
}
